// Copyright (c) Appeon. All rights reserved.
// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. 
// You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.

namespace SnapObjects.Data
{
    /// <summary>
    ///     The types of SQL JOIN operation.
    /// </summary>
    public enum SqlJoinType
    {
        /// <summary>
        ///     JOIN (Default). Returns records that have matching values in both tables.
        /// </summary>
        Join,

        /// <summary>
        ///     INNER JOIN, the same as JOIN. Returns only records that have matching values in both tables.
        /// </summary>
        Inner,

        /// <summary>
        ///     LEFT OUTER. Returns all records from the left table, and the matched records from the right table.
        /// </summary>
        Left,

        /// <summary>
        ///     RIGHT OUTER. Returns all records from the right table ,and the matched records from the left table.
        /// </summary>
        Right,

        /// <summary>
        ///     FULL OUTER. Returns all records when there is a match in either left or right table.
        /// </summary>
        Full
    }
}
